url 传参 url 嵌套的问题
问题场景
get请求链接中: 传参中含有url
“chinahr://customer/h5page?” + LEOGAO_PAGE+”=”+finishpage+”&”+LEOGAO_ACTION+”=”+finishaction + “&”+INTENT_URL+”=” + url
其中:
url: file:///android_asset/hybird/cp/index.html?uid=” + cuid +”&gender=”+gender +”&photo=”+photoPath;
合并之后:
“chinahr://customer/h5page?” + LEOGAO_PAGE+”=”+finishpage+”&”+LEOGAO_ACTION+”=”+finishaction + “&”+INTENT_URL+”=”+“file:///android_asset/hybird/cp/index.html?uid=” + cuid +”&gender=”+gender +”&photo=”+photoPath;
所以这个 url 中的 第二个及以后的参数第一次就会被router解析,并不会将 url 整体作为一个参数传到下一个页面中去再次解析识别。
解决方法
Android端
|
|
前端js
|
|
踩坑
- 第一次使用UrlEncoder编码,k可能会造成浏览器与js解析数据会存在不一致的问题
解决:先使用base64进行编码,解决数据不一致的问题,再进行UrlEncoder编码(为了防止base64编码后的数据解析时:”+” 会当做空格的问题 ) 加载本地 html 时:直接设置 cookie 在 本地url 上是无效的,也是没有必要的。自己遇到的问题是:加载本地 html,此html中使用的 jsonp 请求网络,此时需要的cookie,需要设置 WebView 的cookie,使之持久化,下次会自动带 cookie 访问网络的。
Android 5.0 WebView 设置cookie问题
对于 Android 5.0 以上的WebView,默认关闭了接收三方cookie,但是提供了设置 cookie的接口,需要开发者去手动设置三方信任cookie。否则,加载本地 html 时,cookie 同步不过去。
代码如下:
|
|
Android WebView 加载本地 html
- webview 加载 sd 卡下的 html 是不能访问的,权限问题。
- 如果访问 /data/data/包名/files/index.html,需要开启文件访问权限(默认是开启的,不要动态设置关闭)1webSettings.setAllowFileAccess(false);// 关闭
补充
在线加解密、编码解析工具:
http://tool.oschina.net/encrypt?type=3
http://www.cnblogs.com/wangsu/articles/2917181.html